The present invention is directed to image processing and particularly to means for changing the scale with which an image is displayed.
In displaying a stored image, it sometimes occurs that the device with which the image is to be displayed has a higher or lower resolution than that at which the image is stored. For instance, the image may be stored in a 512.times.512 matrix, while the display device displays it only in a 256.times.256 matrix. In such a case, it is necessary to determine which stored data are to be employed in providing the output data.
In the case of the two-to-one reduction just described, the method for making the determination can be fairly simple; every second scan line in the stored image can be eliminated, as can every second pixel (picture element) in the remaining scan lines. Conversely, in a one-to-two expansion, each stored pixel can be employed as four display pixels. Similar methods can be employed for any expansion that employs integer scale factors.
However, simple resolution reductions of the type described above result in a jaggedness not found in the stored image. Also, although simple resolution increases of the above type technically do not increase jaggedness, the display device that requires the resolution increase may display the image at a larger display size so that the jaggedness that was already in the stored image may be more objectionable in the increased-resolution image.
Further problems occur when the scale factor is not an integer. In such cases, determining which input value to use as a given output value is not as straightforward as it is in the integer-scale-factor case and thus tends to be time-consuming. In order to accomplish such scale changes rapidly, therefore, some systems in the past have computed and stored a sequence of input locations to be used to generate the values for the output locations. For large images, such as the high-resolution images often employed to represent scanned documents, this approach can require a prohibitively large memory.
Another problem attends some attempts to increase the fidelity of the conversion by interpolating between input values. In all conversions other than simple resolution reductions with integer scale factors, some output locations fall between input locations, so there is no input value that gives the value of the image at certain of the output locations. An obvious expedient in such situations is to assign to an output location the value associated with the input location to which that output location is closest. In order to achieve greater fidelity to the underlying image, on the other hand, one might try to interpolate between the values of two or more input values to approximate the image value at the output location. But the time required for interpolation, added to the time required for other processing, may slow the conversion process intolerably.
It is accordingly an object of the present invention to retain a high level of image fidelity despite resolution changes. It is another object to provide a rapid method of image generation that is applicable throughout a wide range of scale factors. It is a further object to provide changes of scale in an efficient manner.